package com.mem.app.model;
// Generated 21/Ago/2015 19:35:12 by Hibernate Tools 4.3.1

import java.util.Date;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Interacao generated by hbm2java
 */
@Entity
@Table(name = "interacao", catalog = "memdb")
public class Interacao implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private int idInteracao;
	private Paciente paciente;
	private Date data;
	private List<Questionario> questionarios = new ArrayList<Questionario>(0);
	private List<Jogo> jogos = new ArrayList<Jogo>(0);

	public Interacao() {
	}

	public Interacao(int idInteracao, Paciente paciente, Date data) {
		this.idInteracao = idInteracao;
		this.paciente = paciente;
		this.data = data;
	}

	public Interacao(int idInteracao, Paciente paciente, Date data, List<Questionario> questionarios, List<Jogo> jogos) {
		this.idInteracao = idInteracao;
		this.paciente = paciente;
		this.data = data;
		this.questionarios = questionarios;
		this.jogos = jogos;
	}

	@Id

	@Column(name = "idInteracao", unique = true, nullable = false)
	public int getIdInteracao() {
		return this.idInteracao;
	}

	public void setIdInteracao(int idInteracao) {
		this.idInteracao = idInteracao;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idPaciente", nullable = false)
	public Paciente getPaciente() {
		return this.paciente;
	}

	public void setPaciente(Paciente paciente) {
		this.paciente = paciente;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "data", nullable = false, length = 10)
	public Date getData() {
		return this.data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "interacao")
	public List<Questionario> getQuestionarios() {
		return this.questionarios;
	}

	public void setQuestionarios(List<Questionario> questionarios) {
		this.questionarios = questionarios;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "interacao")
	public List<Jogo> getJogos() {
		return this.jogos;
	}

	public void setJogos(List<Jogo> jogos) {
		this.jogos = jogos;
	}

}
